
package com.shop.cloud.mall.admin.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shop.cloud.mall.common.dto.OrderDeliveryDTO;
import com.shop.cloud.mall.common.dto.PlaceOrderDTO;
import com.shop.cloud.mall.common.entity.OrderInfo;
import com.shop.cloud.mall.common.entity.OrderItem;
import jakarta.servlet.http.HttpServletRequest;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 商城订单
 *
 * @author
 * @date 2019-09-10 15:21:22
 */
public interface OrderInfoService extends IService<OrderInfo> {
	OrderInfo getById1(Serializable id);

	IPage<OrderInfo> page1(IPage<OrderInfo> page, Wrapper<OrderInfo> queryWrapper);

	/**
	 * 修改商城订单价格
	 * @param orderItem
	 */
	void editPrice(OrderItem orderItem);

	/**
	 * 查询统计付款金额
	 * @param orderInfo
	 * @return
	 */
	BigDecimal sumPaymentPrice(OrderInfo orderInfo);

	/**
	 * 订单发货
	 * @param orderDeliveryDTO
	 */
	void delivery(OrderDeliveryDTO orderDeliveryDTO);

	/**
	 * 分页查询（供应商）
	 * @param page
	 * @param queryWrapper
	 * @return
	 */
	IPage<OrderInfo> page2(IPage<OrderInfo> page, Wrapper<OrderInfo> queryWrapper, String supplierId);

	/**
	 * 新增订单（收银台）
	 * @param placeOrderDTO
	 */
	OrderInfo orderAddCashier(HttpServletRequest request, PlaceOrderDTO placeOrderDTO);
	/**
	 * 取消订单（收银台）
	 * @param orderInfo
	 */
	void orderCancelCashier(OrderInfo orderInfo);

	/**
	 * 处理订单回调（收银台）
	 * @param orderInfo
	 */
	void notifyOrderCashier(OrderInfo orderInfo);

	/**
	 * 商城订单自提
	 * @param id
	 */
	void takeGoods(String id);
}
